Clase 28.07ΒΆ

  • Parametro es lo que no podemos modificar, se guarda en en el aprendizaje y se actualiza mientras mas aprende
  • Hiperparametro si lo podemos modificar , es una variable que toma por sentada una parte de su entrenamiento y la usa para entrenar.

Hiperparametros de nuestra redΒΆ

  • Ctantidad de NeuronaS
  • Cantidad de capas
  • Learning rate es Es un hiperparΓ‘metro que controla cuΓ‘nto se ajustan los pesos de la red en cada iteraciΓ³n.
  • Funcion activacion
  • Batchsize
  • epocas

Nosotros lo que queremos hacer es tenemos un objetivo , es hacer que la red aprenda, y que encuentre el proceso de nuestra data. El problema son los recursos entonces tenemos un batch que tiene un subjconjunto del set original, y cada vez que te pase n observaciones actuliza los datos. Osea que por cada chunck calculo la perdida antes de hacer backpropagation. Si yo le pongo batchsize de 1 , se va a memorizar los datos y entonces va a overfittear

Las epocas es darle varias vueltas a todo el conjunto de datos, 1 vuelta de todo el conjunto de dato se llama epoca. entrenar solo 2-3 Γ©pocas en un problema complejo es muy malo lo ideal es hacerlo mas grande

Entrenamienton y Prueba y ValidacionΒΆ

La validacion y el test la diferencia es una diferencia metodologica. El train ajusta los hiperparametros. Durante nuestra experimentacion de ver las metricas y hacer nuevas iteraciones del modelo son sobre la validacion.

La idea del test es que nunca lo haya visto, osea que sean nuevos. Para eso sirve el validation, para que la correccion sea sobre este ultimo

Formas de Elegir HiperparametrosΒΆ

Grid SearchΒΆ

$n = (0.1,0.001, 0.0001)$ $f(z) = (sig, tanh , relu)$

Y de estas se combinan para formar un tuneo del parametro

El problema es que pesa mucho, crece exponencialmente, cada una de las combinaciones es un nuevo modelo. Es bien exacto ya que prueba todas las posibles combinaciones

Random SearchΒΆ

Probamos de manera aleatoria, y de esas elige n combinaciones, pero el problema es que solamente funciona si el muestreo es suficietemente grande.

El problema es que se queda en minimos locales, no explora para encontrar mas combinaciones que mejoren el modelo.

Bayessian OptimizationΒΆ

Bayes me dice que

$$P(A|B) = \frac{P(B|A) * P(A)}{P(B)}$$

Voy a variar un poco esa configuracion, si mejoro dice que en esa direccion me voy a mover. La idea es que en lugar que me voy a elegir combinaciones posibles.

Si converges en varios distintos quiere decir que por ahi va tu verdadero minimo.

OverfittingΒΆ

Solo aprendio los datos de entrenamiento.Debe de generalizar no de solo saber que es un set de datos.

UnderfittingΒΆ

Queremos llevar nuestro modelo a un punto en donde queremos que nuestro modelo no prediga de manera muy simple el modelo

RegularizaciΓ³nΒΆ

La idea es penalizar los pesos para que el modelo no se vuelva demasiado complejo (evitar overfitting).

La funciΓ³n de pΓ©rdida queda asΓ­ (ejemplo con Ridge):

$$ MSE = \frac{1}{n} \sum_{i=1}^{n}(y_i - \hat{y_i})^2 + \lambda \sum_j w_j^2 $$

  • Primer tΓ©rmino: error cuadrΓ‘tico medio (MSE).
  • Segundo tΓ©rmino: penalizaciΓ³n de los pesos (regularizaciΓ³n).
  • $\lambda$: hiperparΓ‘metro que controla cuΓ‘nto penalizamos.

TiposΒΆ

  1. Ridge (L2): penaliza la suma de los cuadrados de los pesos.

    $$ \lambda \sum_j w_j^2 $$

  2. Lasso (L1): penaliza la suma de los valores absolutos de los pesos.

    $$ \lambda \sum_j |w_j| $$


πŸ”Ή Con esto, el modelo reduce la magnitud de los pesos y evita que alguno tenga demasiada influencia. πŸ”Ή Lasso incluso puede volver algunos pesos exactamente cero β†’ selecciona variables.

RIDGE no puede llevar a valores a 0 en cambio a LASSO si los lleva y mata neurona el hijo de perra

InΒ [1]:
import numpy as np
import matplotlib.pyplot as plt

# Simulamos Γ©pocas
epochs = np.arange(1, 51)

# Simulamos pΓ©rdida (loss)
loss_train = np.exp(-epochs/10) + 0.05*np.random.rand(len(epochs))
loss_val = np.exp(-epochs/10) + 0.1*np.random.rand(len(epochs))
# Forzamos overfitting: validaciΓ³n empieza a subir en Γ©poca 25
loss_val[25:] += (np.arange(len(epochs)-25)) * 0.05

# Simulamos accuracy
acc_train = 1 - loss_train + 0.05*np.random.rand(len(epochs))
acc_val = 1 - loss_val + 0.05*np.random.rand(len(epochs))

# Graficamos
plt.figure(figsize=(12,5))

# Loss
plt.subplot(1,2,1)
plt.plot(epochs, loss_train, label='Loss Entrenamiento')
plt.plot(epochs, loss_val, label='Loss ValidaciΓ³n', linestyle='--')
plt.axvline(25, color='r', linestyle=':', label='Inicio overfitting')
plt.xlabel('Γ‰pocas')
plt.ylabel('Loss')
plt.title('FunciΓ³n de PΓ©rdida')
plt.legend()

# Accuracy
plt.subplot(1,2,2)
plt.plot(epochs, acc_train, label='Accuracy Entrenamiento')
plt.plot(epochs, acc_val, label='Accuracy ValidaciΓ³n', linestyle='--')
plt.axvline(25, color='r', linestyle=':', label='Inicio overfitting')
plt.xlabel('Γ‰pocas')
plt.ylabel('Accuracy')
plt.title('Accuracy')
plt.legend()

plt.tight_layout()
plt.show()
No description has been provided for this image

En el earling stoping lo que hacemos es hacer el corte en la epoca donde la perdida es minima

DropoutΒΆ

Es donde la neurona la matamos, en donde lo hacemos para no depender de una neurona en especifico, y asi evitar el overfitting. Este es un hiperparametro que le podemos definir con probabildiad

CLASE 04.08ΒΆ

OptimizadoresΒΆ

Claro, aquΓ­ tienes una explicaciΓ³n clara y bien estructurada sobre el Gradiente Descendente Simple, su funcionamiento, problemas, y por quΓ© se usan optimizadores mΓ‘s avanzados hoy en dΓ­a, incluyendo una menciΓ³n al problema del gradiente desvanecido (vanishing gradient):


πŸ“‰ Gradiente Descendente SimpleΒΆ

ΒΏQuΓ© es?ΒΆ

El gradiente descendente es un algoritmo de optimizaciΓ³n que busca minimizar una funciΓ³n de pΓ©rdida (por ejemplo, el error de predicciΓ³n) ajustando los parΓ‘metros del modelo (como los pesos en una red neuronal).

ΒΏCΓ³mo funciona?ΒΆ

En cada paso:

$$ \theta_{t+1} = \theta_t - \eta \cdot \nabla_\theta J(\theta) $$

Donde:

  • $\theta$: parΓ‘metros del modelo (pesos).
  • $\eta$: tasa de aprendizaje (learning rate).
  • $\nabla_\theta J(\theta)$: gradiente de la funciΓ³n de pΓ©rdida.

El modelo ajusta sus parΓ‘metros en la direcciΓ³n contraria al gradiente, buscando el mΓ­nimo.


ΒΏDΓ³nde converge?ΒΆ

  • Si la tasa de aprendizaje es adecuada, el algoritmo puede converger hacia un mΓ­nimo local o global.
  • En funciones convexas, converge al mΓ­nimo global.
  • En redes neuronales (no convexas), puede quedarse en mΓ­nimos locales o sillas (saddle points).

🧱 Problemas del Gradiente Descendente Simple¢

  1. Sensibilidad a la tasa de aprendizaje:

    • Si es muy grande β†’ puede divergir (explota).
    • Si es muy pequeΓ±a β†’ converge muy lento o se estanca.
  2. Oscilaciones o estancamiento:

    • Puede oscilar en valles estrechos o quedarse "atrapado".
  3. No se adapta al paisaje del error:

    • Misma tasa de aprendizaje para todos los parΓ‘metros β†’ ineficiente.
  4. Problemas en redes profundas:

    • AquΓ­ entra el problema clave: el gradiente desvanecido.

🌫️ Vanishing Gradient Problem (Problema del Gradiente Desvanecido)¢

  • En redes profundas, al retropropagar el error (backpropagation), los gradientes pueden volverse muy pequeΓ±os en las capas iniciales.
  • Esto hace que los pesos de las primeras capas no se actualicen adecuadamente, y por tanto, la red no aprenda bien.
  • Ocurre especialmente con funciones de activaciΓ³n como sigmoid o tanh.

Β‘Claro, Mathew! AquΓ­ tienes una descripciΓ³n sencilla y clara de cada optimizador, con su propΓ³sito y caracterΓ­sticas principales:


βš™οΈ Optimizadores mΓ‘s usados en Deep LearningΒΆ


1. SGD (Stochastic Gradient Descent)ΒΆ

DescripciΓ³n: Es el optimizador mΓ‘s bΓ‘sico. Actualiza los pesos del modelo usando el gradiente del error calculado en un mini-lote (batch) de datos. Ventaja: Simple y rΓ‘pido en problemas pequeΓ±os. Desventaja: Puede ser lento para converger y quedarse atrapado en mΓ­nimos locales.


2. SGD con MomentumΒΆ

DescripciΓ³n: Mejora a SGD aΓ±adiendo una β€œinercia” al movimiento de los pesos. AsΓ­, si el gradiente sigue apuntando en la misma direcciΓ³n, el optimizador va ganando velocidad. Ventaja: Acelera la convergencia y reduce oscilaciones. Desventaja: TodavΓ­a necesita ajustar bien el learning rate.


3. AdagradΒΆ

DescripciΓ³n: Adapta automΓ‘ticamente la tasa de aprendizaje para cada parΓ‘metro segΓΊn cuΓ‘ntas veces se actualizΓ³. ParΓ‘metros que se actualizan mucho, reducen su paso. Ventaja: Bueno para datos escasos (por ejemplo, NLP). Desventaja: El learning rate puede volverse tan pequeΓ±o que el modelo deja de aprender.


4. RMSPropΒΆ

DescripciΓ³n: Corrige el problema de Adagrad usando una media mΓ³vil de los gradientes pasados. Mantiene una tasa de aprendizaje razonable a lo largo del tiempo. Ventaja: Muy ΓΊtil en redes recurrentes (RNNs). Desventaja: Puede requerir ajuste fino de hiperparΓ‘metros.


5. Adam (Adaptive Moment Estimation)ΒΆ

DescripciΓ³n: Es uno de los optimizadores mΓ‘s usados. Combina la idea de momentum (velocidad) con la adaptaciΓ³n del learning rate (como RMSProp). Ventaja: RΓ‘pido, estable y funciona bien en la mayorΓ­a de los casos. Desventaja: Puede no generalizar tan bien si no se ajusta el learning rate.


6. AdamWΒΆ

DescripciΓ³n: Es una mejora de Adam que maneja mejor la regularizaciΓ³n (weight decay), especialmente ΓΊtil en modelos grandes como Transformers. Ventaja: Mejor generalizaciΓ³n y resultados mΓ‘s estables. Desventaja: Requiere mΓ‘s memoria que SGD.


7. Nadam (Nesterov-accelerated Adam)ΒΆ

DescripciΓ³n: Es una versiΓ³n de Adam que aΓ±ade la aceleraciΓ³n de Nesterov, anticipando el prΓ³ximo paso. Ventaja: Puede acelerar el aprendizaje en algunos problemas. Desventaja: No siempre mejora respecto a Adam.


CLASE 18082025ΒΆ

Redes Convulusionales.ΒΆ

La red anterior lo que piensa es que cada pixel es independiente, pero el humano no interperta asi , sigue los patrones de seΓ±as, coloroes, formas que al unirlas conforman la imagen de la idea.

Lo que hacen las CNN es reducir a una imagen mas sencilla de entender lo que ve.

Para lo que estas hechas es para tener datos de local y espacial. Que tienen un contexto y que sus variables tienen dirferentes valores en otros datos.

Las redes captan una matriz y a a esa patriz le dan sentido en forma de patrones.

Nuestra reed es la misma red que venimos trabajando anteriormente, la red proprocesa los datos de manera releavante, le pode un MLP comun y calcula por filtros.

En el pipeline, de las capas de convulucion haecen que pierda informacion. Pero vamos a mantener la informacion mas importnate.

PoolingΒΆ

Tiene un kernel que tiene una cantidad asignada en la matriz. A los numeros del kernel se le aplica una operacion , ya sea maxpoling que es calcular el maximo. La finalidad de las capas de pooling es reducir la info Lo que decidimos es si tener una capa de max o average. Estos son hiperparametros, cuidado ya que pueden hacer que pierdas informacion Esto sirve si queres reducir la cantidad de pxeles a analizar en una capa

En las redes reales , tenemos mas info , porque tenemos un canal rojo, azul y verde Y debemos de encontrar variaciones entre todos los canales.

Capa de DropoutΒΆ

El problema es que al aplicar los filtros genero mas imagenes de la original. Lo que hace el dropout evita el sobreajuste tirando aleatoriamente n % que tu eligas

Convertir la matrizΒΆ

Convertimos la matriz a un vector

Red NeuronalΒΆ

Luego aplicamos una red neuronal tipica. Softmax lo que hac es ponderar el numero entre las multiples variables que den 1 explicitamente para saber si va a ser un tipo de clasificacion o no .

Si se hace esto 1 de las variables sera la respuesta ya que softmax obliga a que se tome la mas alta

Una cosa interesante es que las CNN tienen menos parametros que una red normal.

ResumenΒΆ

Redes convolucionales (CNN):

Buscan patrones cada vez mΓ‘s bΓ‘sicos. Por ejemplo de una cara humana, la descompone en ojos, cara, boca, etc y cada parte de la cara la descompone en otras partes etc.

Naturaleza local especial: tienen un contexto y alreadedor hay informaciΓ³n de otras variables que me dan contexto de ese valor.

ConvoluciΓ³n: operaciΓ³n de matriz. Tenemos un kernel (una matriz) hacemos una combinaciΓ³n lineal con los valores de otra matriz para resumirlo todo en un solo valor.

Nos pueden ayudar a encontrar los bordes de un objeto, los bordes indican cuando las cosas son y dejan de ser.

La red calcula los valores ideales de los kernel.

Pooling: informaciΓ³n que resume la informaciΓ³n de una regiΓ³n reduciendo su tamaΓ±o lo que ayuda a reducir la complejidad del modelo y lo hace mΓ‘s robusto a pequeΓ±as variaciones o traslaciones en los datos.

Aplicamos n filtros(es un hiperparΓ‘metro) este encuentra patrones, luego aplica pooling y volvemos a aplicar convoluciΓ³n con los filtros, cada vez podemnos ir encontrando patrones mΓ‘s complejos.

Softmax: pondera todos los valores y elige el mΓ‘s alto.

ReSUMEN 2 Clase 1908ΒΆ

Si preguntan porque tanto resumen es que me quede dormido en la clase. xdΒΆ

mlp parte mas sencillas de redes neuronales

ahora veremos redes convolucionales cnn

recordando la clase pasada teniamos 10 clases con 284 variables de entrada,

784 variables? porque porque cada pixel es independiente de los demas

nosotros entendemos imagenes por trazos por contexto donde variables se representan, como local espacial, cada pixel y esta sentado tiene sentido que los de alrededor tenga sentido para encontrar patrones interesantes

problema de independencia, ejemplo altura de personas las variabels son dependientes para hacer inferencia final peroen imagenes se represetan diferentes una de otra

esta informaciΓ³n si tengo "a" pero escrita en diferente tipografia, nosotros no entendemos por pixel esta dibujado entonces es una "a" porque lo hacemos por trazaos.

incluso si son por las partes debemos reconocer si es un ojo por la forma por textura por la posicion y como sabemos que es un ojo y si hay nariz labios, etc y dentro de un circulo entonces es una cara y si tiene otras caracteristicas entonces es una mujer, debemos extender esto hasta arriba para entender una raiz

las redes neuronales buscan patrones cada vez mΓ‘s basicos como figuras texturas, etc esto lleva a un contexto mucho mΓ‘s grande y complejo para poder solucionarlo

para entender algo en el mundo sabemos que es algo cuando hay ausencia, es decir sabemos que hay una montaΓ±a porque hay cielo, es decir limites que defines cosas de otras para convertir en otra cosa.

laboratorio redes convolucionales, sencilla la idea:

esta redes es para naturaleza local espacial es que tienen un contexto y al rededor al mismo tiempo dan contexto de mi propio valor, es diferente a series de tiempo

existen capas de convoluciones y pooling, ess decir es la red que hace es mlp procesar la informacion con patrones relevantes conectando mlp comun para terminar un trabajo:

tenemos un kernel o nucleo y me da una ponderacion de que tan importante es mi alrededor y esto dice que se da una ponderacion por ejemplo *5 y en la esquina de 0 arriba +1 abajo -1 etc y sumo todas las casillas al rededor y ese filtro es colocarlo en una esquina y esos los resumo en un solo valor, un solo pixel y mover hasta abajo 1 pixel para hacer otro proceso.

tengo

100 97 96 103 101 102 404 102 100 y la matriz:

0 -1 0 -1 5 -100 -1 01

y al hacer la combinacion lineal de 9 casillas en un solo numero:

505-97-103-102-102=101 son kernels pequeΓ±os

tenemos por ejemplo:

negro:0 - blanco:255

pensando en el escenario:

255 255 255 255 0 0 0 0 255

las convolucion nos ayuda a encontrar bordes o ecnontrar cuando algo esta dejando de ser como el trazo en los 4 bloques de arriba o el bloque solo de la esquina abajo pero entonces si aplico:

y aese filtro se le aplica:

-1 0 1 -1 0 1 -1 0 1

cuando las columnas de los lados son diferentes se hace 0

pero sse harΓ‘ en el valor original y hace que 2 columnas sean distintos y es como un limite es decir una linea vertcial si los 2 son distintos y dibujo el patrΓ³n negro encontre una linea vertical

0 al rededir y 1 al medio que hace este patron? esto no hace nada porque ahora otro por ejemplo todos unos:

esto suma todos los 9 pixeles en una sola posiciΓ³n, que pasa si estoy en una seccion clara? se exponencia lo blanco si estoy en la oscura no pasa nada son bajos los tonos, entonces lo que hace es aumentar el brillo o contraste,

ahora si el valor de todos los 9 pixeles seran 1/9 esto es un promedio y esto lleva a una version mas central de los colores haciendo un blur se verΓ‘ borroso, estos son los pesos de la red, le pasamos a la red cuantos filtros y la red determinarΓ‘ que patron le servirΓ‘ esto para determinar que filtros usar.

un filtro:

1 1 1 0 0 0 -1 -1 -1

que harΓ‘? invertirΓ‘ los pixeles y lo que harΓ‘ es omitir las lineas verticales, dejarΓ‘ las horizontales, porque? y las diagonales? estas tienen una componente horizontal

ya que encuentra otros patrones y no se borra del todo,

porque mientras mas filtros mas complejo?

ventajas de la red neuronal:

sabiendo overfittiear:

meansky dijo que redes de una sola capa solo puede escalar patrones lineales y con muchas capas encontramos no lineal +volviendo a convoluciones tenemos una capa con ciertos pixeles en el medio y esto nos tira a un solo numero y en las egunda capa:

porque las capas se ponen sobre otra, entonces las primeras encuentran puntos, patrones, la otra capa algo de 27*27 y asi original, es decir encuentra cosas exponencialmente con trazos cada vez mΓ‘s grandes

los filtros buscan la red y ver que ayudan para encontrar patrones importantes

entonces:

creamos una red pero en lugar de tener 10 neuronas se tienen 10 filtros 3310 = 90 parametros entonces esto calcula los 10 parametros para ajustar

al ajustar el filtro en la esquina y se calcula el centro , los valores de la esquina superior y izquierda se pierden porque los pixeles se ueren, normalmente a las imagenes se le colocan un paggind y el filtro es 5x5, los pixeles siguen disminuyendo, perdemos informaciΓ³n:

es malo porque ademas tenemos un limite para que mantener la informacion mΓ‘s importante en lugar de recibir 728 variables puedo recibir info igual imporatne de 4*4 = 16 variables de entrada

cantidad de filtros es un hiperparametro

pooling operacion que resume la informaciΓ³n de una regiΓ³n reduciendo su tamaΓ±o, lo que ayuda a disminuir complejidad del modelo, y hace mas robusto pequeΓ±as varaiaciones o traslaciones en los datos obteiene le promedio o maximo, esto es para reducir cantidad de informaciΓ³n pero maxAverage pooling o averagePoolling, es hiperparametros para decidir que me importa es decor una funcion de max o average es como una funcion de activacion y saber que tipo de pooling

esto debemos de tomarlo en cuenta porque el pooling se hace que disminuya informaciΓ³n y de tal forma hacerlo para no hacerlo para quedarnos sin informaciΓ³n sobre capa

ojo en las imagenes blanco y negro, es mas simple pero tenemos mΓ‘s canales en la realidad por rgb y tonalidad, entonces debemos encontrar variaciones en todos los canales ojo cuando parar? con max pooling si se redujo 4 veces la info? si aun se entiende entonces no fue relevantes

la ultima capa es una capa parecido a droppout

tenemos imagen blanco y negro -> 10 filtros ahora 10 imagenes luego pooling, luego le saco 20 filtros y luego pooling iugual pero mas pequeΓ±as, es decir 20 imagenes mas pequeΓ±as de la original, genero demasiada informacion de una sola imagen, el dropout bota el 25% de la info para no evitar sobreajuste sobre cada observacion y termina siendo el 25% de todos los datos, por ultimo hacemos flatten es matriz a vector, y sacamos una capa de 10 de 10 simbolos que tenian

otra cosa:

tengo 10 variables de salida:

si tenemos una sigmoide y un 1 parecido a 7 que van a activar de manera diferente las clases de 0 - 9:

0.1 0.9 0.2 0.15 0.4 0.1 0.15 0.8 0.05 0.3

suma 1? no debe de sumar 1? no bueno el solve de pytorch lo que hace es que hace que todo sume 1 cual valor tendrΓ‘ valor mas alto? el del 1 entonces es 1 pero tambien se puede clasificar como 7 en logistica se coloca el treshold con 0.5 por ejemplo entonces estaria dos entradas una para 1 y otra para 7 pero con solve math tenemos una ponderacion de esto. hace como una normalizacion agarrando el maximo

lab 3 comparar red de ese lab con una cnn una cnn con mlp:

recordando parametros? capa 1 eran pixeles 784 y las egunda capa, supongamos 784 neuronas y tenemos 128 neuronas las fully conection newtorks conectaran entradas con neuronas entonces cuantos pesos tengo? 784 * 128 es decir para mlp tiene un montΓ³n de parametros, la idea con cnn es que con una fraccion de parametros tener el mismo rendimiento, es decir una fraccion por ejemplo 255 parametros

ahora graficar matriz confusion multi algo? entonces el clasificador era perfecto? con esto se ve, por ejemplo esperar errores en 7-1 0-8, etc porque son numeros que se parecen entre ellos, entonces hay que graficar esta matriz de confusion , hay que concentrarse en los erroes, y decir porque? es decir intentar con intuicion porque se confunde.

Clase 25082025ΒΆ

Redes Neuronales recuerrentesΒΆ

Se usan en datos equenciales como fotogramas, palabras o lenguaje y sobre todo en series de tiempo. Son la base para que se usen los transformadores y LLMs.

La deficiencia de los MLPs es que cada punto y observaciones es independiente una de la otra. Pero cuando hay dependencias en un tiempo.

RNNΒΆ

Fit forward netwoarl networks. Son el tipo de redes que la data entra , va en una direccion y sale. En cambio las RNN no cuentan como ese tipo , porque es de que los outputs de la neurona se vuelven los inputs de la misma.

El feedback loop, es como vamos a tratar el outuput como el input.

Clase 0109ΒΆ

REPASOΒΆ

Viene

  • Una de calculo
  • Un caso
  • Preguntas Cerradas
  • Preguntas Abiertas

Muchas de las preguntas son laboratorios

Tema 1 PerceptronΒΆ

El perceptron es un modelo de mln el problema es que resuelve problemas muy lineales.

Por eso se propuso el modelo multicapa. Lo interesante lo de las redes neuronales es lo que estamos haciendo es conectando un pereceptron uno detras de otro. Todas las neuronas de una capa estan conectadas con las de la siguiente capa.

image.png

El mecanismo de la red funciona de 2 formas, iniciamos de manera aleatoria y luego hacemos un paso de informacion o funcion de perdida para ver que tan bien o mal estan nuestros parametros.

Mi y diagnistico y mi y deben de ser parecidos.

Quremos simular el XOR con los pesos y bayases, el problema es que tenemos un mundo real generando procesos, y queremos con redes o con perceptrones simular el proceso natural. Queremos encontrar un modelo que me genere los mismos resultados que un proceso natural. Por eso vemos con nuestra funcion de perdida que tan lejos se acercan los valores y corregir los valores aleatorios.

Por simplicidad usamos simobide como funcion de activacion. Que lo que hace es aplicar no linealidad. Quiere decir que se va a encender o no se va a encender. Si aplicamos simboide como en este ejemplo

image-2.png

Por eso mismo podemos reescribir los valores de z3 con valores de a2 , w5 y w6 y b3 ya que los outputs de la anterior es los inputs de la siguiente

image-3.png

Pero para saber si esta bueno o malo usamos la funcion siguiente

Mi rango de numeros va entre 0 y 1. Lo que quiero medir es que los que esten cerca del 0 o cerca del 1 esten muy cerca de ellos osea como que los ponga a la apar. Por eso se usan logaritimica. Esto lo que hace es penalizar o apoyar a los extremos sobre los puntos medios.

Por eso se usa el BinaryCross Enthropy.

image.png

Lo que se usa en logaritmo es para saber que tan cerca es para las respuestas que yo hago.

SI la aplicamos nos daria algo asi

No hay tanto error, la funcion de perdida que utilicemos nos va a cambiar. Aqui no cambiara tanto los parametros en la siguiente vuelta, esto depende del dominio mucho.

Su funcion de actualizacion es desenso gradiente, este nos dice que el peso actual es el peso actual es el learning rate o el valor del parametro.

El gradiente de una funcion es una direccion de maximo cambio.

image.png

EL gradiente es la direccion en donde hay un cambio a un cero absoluto osea una solucion. La funcion de perdida la pdoemos pensar como un plano de n dimensiones y me calcula cuanta perdida tenemos en esos parametros. El gradiente es cuando estamos en una posicion y es el punto con mayor inclinacion, por eso sirve para encontrar ceros , porque lo que nos ayuda es llevarnos al mayor cambio que siempre convergen en soluciones. Por eso se miden con mejoras en esto.

Es vector el gradiente en cuanto cambio debo hacer en cada parametro para estar apuntando al punto de mayor inclinacion hacia el minimo.

El gradiente es la direccion, pero si damos todo el paso del gradiente, si lo tomas todo puede llegar a suceder que llegues a un punto que no es maximo o minimo. Ojo aqui en estos problemas tratamos de minimizar no maximizar.

Yo otengo que tratar de hacer s meter mi error en terminos de otras variables porque son mi input el output de la anterior.

image.png

Entonces resolvamos el gradiente para w5 el nuevo valor que va a tener.

image-2.png

Reuerda que la derivada de la funcion simboide es

image-3.png

Si es negativa, esto quiere decir es para que alcance un maimo en mi funcion debo disminuir mi valor.

Ahora ya calculamos el w_5 correcto

image-4.png

OptimizadoresΒΆ

El descenso gradiente tiene un problema es que no es tan suave el camino, y si decide que le siguiente esta en otra direccion mete ruido a su aprendizaje. Quiere decir

El descenso gradiente es lo que hace es algo asi.

image.png

Por eso hay mucha volatilidad en cambios de sistema.

El primer concepto es momentum, el momentum lo qrimero que metemos es un tema de recursividad,

Mira la ecuacion

image-2.png

Lo que me dice es que en el paso anterior voy a tomarlo en cuenta, es algo parecido a inercia. La idea es que mientras mas cambios le pongo a la misma direccion mas me va a costar el ruido al modelo basco. Por eso mira el cambio que hizo anteriormente.

El siguiente concepto es ADAGRAD,

image.png

Si yo introduczco un vector abajo, lo que yo estoy haciendo es convirtiendo el learning rate el vector. Por eso voy a tener un vector que me diga que para ese vector el learning rate es ese. Por eso mientras mas peque;o el denomiador mas peque;os son mism pasos para mantener estabilidad

Ahorita introdujimos tener un vector de learning rates para parametros.

image.png

Adam junta el momentum y especializacion de llearning rate. Osea un tipo de promedio exponencial

El primer termino que ves ahi

Mientras mas lejos vaya yo , menos me importara el de atras, osea tendre gradientes historicos. El 0.9 es el hiperparametro para que no decrezca tanto.

image-2.png

RNNΒΆ

Las arquitecturas son informaciones que no podemos asumir independecia de variables. Hay tipos de datos que nos da informacion el contexto como los trazos de los numeros. El hecho de que este pixel este de un color en especifico aumenta la probabilida dque algunos de al rededor este coloreado. El hecho de informacion en contexto no se usa independencia

Las CNN tomaban en cuenta los datos informacion local espacial, como describir una matriz.

Las secuenciales es que el orden de los datos nos da informacion, osea que

El orden me dio informacion , osea que si contiene informacion respecto al proceso que intento simular. Osea que asumo independencia.

En mlps no pongo el orden o secuencia de los datos , es por eso que se propone algo asi.

Las fit forward netwalr networks. Tiene la caracteristicas de las RNN que no son asi porque tiene un looop

image.png

Nos deja con el feedback loop regresar la informacion d esalida como entrada.

image.png

image-2.png

Para evitar que se quede enloopado , le asignamos una ventana, osea una observacion del pesado o n observaciones del pasado y es un hiperparametro .

Ves que los pesos de las obervaciones anteriores influyen en las siguientes.

El problema es que el w4 crece de manera exponencial . Osea en algun momento w4 crece demasiado.

Osea

Vanishing gradiente problemΒΆ

Osea que se vuelven demasiado peque;os y la red olvida dependencias lejanas debido a los pesos. La ultima observacion la observacin de 10 periodos para atras osea que la red perdio dependencias a largo plazo, osea solo puede tener problemas a corto plazo.

Exploding gradiente problem.ΒΆ

El otuput de combiaciones lineal es de w1 y w4 podria tender al mayor . Los pesos crecen de manera deshorbitada, la red comienza a cambiar valores de manera muy drasticamente.

Sucede cuando le doy mucha ventana a mi red recurrente.

Se deshestabilizan y dejan de aprender.

Fin de repaso

Clase 29092025ΒΆ

Aqui esta la resolucion del 8

image.png

LSTMΒΆ

Los datos que hace son datos secuenciales. El lenguaje tambien lo puede analizar. Como funciona la RNN son la base por los problemas del gradiente construimos las lstm y luego transformadores y luego LLMS.

La idea principal es problema del gradiente.

El problema del gradiente que desparezca y explotara es la capacidad de memoria de la red.

Esto se traduce que no pueden calcular informacion a largo plazo. No puedo calcular el grado de importancia crecio exponencialmente o exploto. La red neurona l pierda e la importancia.

Queremos crear arquitectura que le meta memoria.

Lo que haremos es meterle complejidad a las compuertas. Osea le meto un poco mas de complejidad la compleja de enmedio ponderando como nuevas experiencias alteran nuestra experiencia base.

EL estado de la celda es nuestramemoria a largo plazo, pasa la informacion de un evento al siguiente

image-3.png

Tenemos 3 partes de calculos que utilizan el estado de la celda.

El forget gate. Divide el impacto de las iteraciones cuanto tengo que olvidar segun la informacion que estoy viendo. Lo que estamos haciendo es cambiando comportamiendo segun eventos recientes.

La funcion del forget gate le dice que % mantener y desechar. Osea con un 0.8 conservar el 80%.

La segunda partes es el input gate es crear un nuevo candidato para una nueva memoria. Lo unico que hacemos es cambiar la memoria. Osea como afecta la memoria a largo plazo.

El output gate. Es ver utilizar memoria a largo , corto plazo y memoria actual para tomar una desicion. Y se vuelve de corto plazo y output de la memoria.

Si se dan cuenta lo que estoy haciendo es agregarle las condiciones. Estoy ponderando mi memoria en cada paso. Entonces mitigo el crecimiendo exponencial.No hay ningun parametro si creo ventanas infinitas se crea un problema del gradiente que desvanece o explota.

Un LSTM funciona en miles de observaciones en el futuro , crece el futuro que podemos predecir

PROS VS CONTRAAΒΆ

  • Pors manejan efectivo de dependencias largas en secuencias
  • Reduce el probleam de desvanecimiento.

Lo que hacen estos modelos es predecir cuanto la gente va a querer la cantidad de energia en el dia y ordenar un cronograma.

Ayuda a mantener la red saludable. En las horas no pico calcuraremos la cantidad en la siguiente hora. Calculamos cada hora que va a suceder. En horas pico calculamos cada 15 minutos.

Un modelo que encuentra patrones temporales nos ayuda a hacer este tipo de analisis.

Entonces como los asistentes de voz reciben instrucciones precisas y cortas usan los LSTM.

Se pierde en tareas mucho mas complejas a diferencia que un LLMs. Es por el motivo que salieron los transformadores.